#include "DevCreater.h"

CDevCreater::CDevCreater()
{
}

CDevCreater::~CDevCreater()
{

}

//函数名：CreateSensorDev
//函数功能:传感器设备工厂函数接口
//函数参数：（in）const int & DevType:设备的具体类型
//返回值:返回指向CSensorDev的指针
CSensorDev * CDevCreater::CreateSensorDev(const int &DevType)
{
    int Type1, Type2; //1为大类，2为小类
    CSensorDev * SensorDev;
    Type1 = DevType >> 4;
    switch(Type1)
    {
        case 0x0:  //温湿度传感器设备
        {
            Type2 = DevType & 0xf;
            SensorDev = CreateTemperatureSensor(Type2);
            break;
        }
//        case 0x1:  //光度传感器设备
//        {
//            Type2 = DevType & 0xf;
//            SensorDev = CreateIntensitySensor(Type2);
//            break;
//        }
        default:  //找不到对应设备类型
        {
            SensorDev = 0;
            break;
        }

    }
    return SensorDev;
}

//函数名：CreateTemperatureSensor
//函数功能:创建具体温度设备的工厂接口函数
//函数参数：（in）int & TemperatureType:温度设备类型
//返回值:指向CTemperatureSensor的指针
CTemperatureSensor * CDevCreater::CreateTemperatureSensor(int &TemperatureType)
{
    CTemperatureSensor * TemperatureSensor = NULL;
    switch(TemperatureType)
    {
        case 0x0: //温湿度设备——SCUT
        {
            TemperatureSensor = new CTemperatureSensor_SCUT;
            break;
        }
        default:  //找不到对应温湿度设备牌子
        {
            TemperatureSensor = NULL;
            break;
        }
    }
    return TemperatureSensor;
}

//--------------------------终端设备-------------------------------//
//函数名：CreateTerminalDev
//函数功能:创建终端设备工厂接口
//函数参数：（in）const int & DevType:终端设备类型
//返回值:指向CTerminalDev的指针
CTerminalDev * CDevCreater::CreateTerminalDev(const int &DevType)
{
    int Type1, Type2; //1为大类，2为小类
    CTerminalDev * TerminalDev = NULL;
    Type1 = DevType >> 4;
    switch(Type1)
    {
        case 0x8:  //空调设备
        {
            Type2 = DevType & 0xf;
            TerminalDev = CreateAirconditionTerminal(Type2);
            break;
        }
//        case 0x9:  //灯光设备
//        {
//            Type2 = DevType & 0xf;
//            SensorDev = CreateIntensitySensor(Type2);
//            break;
//        }
        default:  //找不到对应设备类型
        {
            TerminalDev = 0;
            break;
        }

    }
    return TerminalDev;
}

//函数名：CreateAirconditionTerminal
//函数功能:创建空调设备工厂接口
//函数参数：（in）int & AirConditionType：空调设备类型
//返回值:指向CAirConditionTerminal的指针
CAirConditionTerminal * CDevCreater::CreateAirconditionTerminal(int &AirConditionType)
{
    CAirConditionTerminal * AirConditionTerminal = NULL;
    switch(AirConditionType)
    {
        case 0x0: //空调设备——亿林
        {
            AirConditionTerminal = new CAirConditionTerminal_YL;
            break;
        }
        default:  //找不到对应空调设备牌子
        {
            AirConditionTerminal = NULL;
            break;
        }
    }
    return AirConditionTerminal;
}

